// 1、已知单链表节点定义如下，请设计一个算法，实现功能：在一个有序单链表中插入一个新节点并仍然保持有序。
// struct List{
// int data;
// struct List *NEXT;
// }；
// 2、已知栈定义如下，请设计一个算法，实现功能：查找栈中值为x的元素，如存在则返回元素逻辑序号，否则返回-1。
// #define  MaxSize  100  
//  struct SqStack
// {      int  data[MaxSize];
//        int top;		
// }

void Insert(struct list *L,int e){
	struct list *pre = L,*s;
	while(pre ->data < e && pre ->NEXT != NULL) {
		pre = pre->NEXT;
	}
	s = (struct list *)malloc(sizeof(struct list));
	if(!(pre ->NEXT)) {	
		s -> data = e;
		s -> NEXT = pre ->NEXT;
		pre -> NEXT = s;
	}
	else {
		pre - >NEXT = s;
		s -> NEXT = NULL;
	}
}

int SearchSqStack(struct SqStack *S,int x) {
	int i = 0;
	if (S -> top == -1) {
		return -1;
	}
	while(S->data[i] != x) {
		i++;
	}
	if (i > S -> top) return -1;
	else return i + 1;
}